Structured data formats can be defined in various ways such as with JavaScript Object Notation (JSON) and the eXtensible Markup Language (XML). Using these formats, schema for complex data objects can be specified. These objects may include one or more interrelated elements organized into a hierarchy. Thus, they can be used to encode and/or store arbitrary collections of data. In particular, JSON and XML (as well as various other formats) are commonly used for machine-to-machine communication as well as storing information (e.g., to a file) in a human-readable form.
Nonetheless, structured data schema can be quite intricate, with an arbitrary number of elements per example, an arbitrarily deep nesting of elements, and support for arrays of elements. Thus, even for experienced users, reading a JSON or XML file and understanding the organization of the data therein can be a painstaking task. And for non-technical users, it may be a barrier that prevents these users from interacting with various software applications that employ such schema.